翻訳と辞書
Words near each other
・ Logical line of operation
・ Logical link control
・ Logical machine
・ Logical matrix
・ Logical Methods in Computer Science
・ Logical model
・ Logical NOR
・ Logical order of God's decrees
・ Logical partition
・ Logical positivism
・ Logical possibility
・ Logical quality
・ Logical reasoning
・ Logical schema
・ Logical security
Logical shift
・ Logical spreadsheet
・ Logical topology
・ Logical truth
・ Logical unit number
・ Logical Unit Number masking
・ Logical volume management
・ Logical Volume Manager (Linux)
・ LogicalDOC
・ Logicalis
・ LogicBoxes
・ LogicBuy
・ Logicism
・ LogicManager
・ LogicMonitor, Inc.


Dictionary Lists
翻訳と辞書 辞書検索 [ 開発暫定版 ]
スポンサード リンク

Logical shift : ウィキペディア英語版
Logical shift


In computer science, a logical shift is a bitwise operation that shifts all the bits of its operand. The two base variants are the logical left shift and the logical right shift. This is further modulated by the number of bit positions a given value shall be shifted, like "shift left by 1" or a "shift right by n". Unlike an arithmetic shift, a logical shift does not preserve a number's sign bit or distinguish a number's exponent from its mantissa; every bit in the operand is simply moved a given number of bit positions, and the vacant bit-positions are filled in, usually with zeros (contrast with a circular shift).
A logical shift is often used when its operand is being treated as a sequence of bits rather than as a number.
Logical shifts can be useful as efficient ways of performing multiplication or division of unsigned integers by powers of two. Shifting left by ''n'' bits on a signed or unsigned binary number has the effect of multiplying it by 2''n''. Shifting right by ''n'' bits on an ''unsigned'' binary number has the effect of dividing it by 2''n'' (rounding towards 0).
Because arithmetic right shift differs from logical right shift, many languages have different operators for them. For example, in Java and JavaScript, the arithmetic right shift operator is >>; whereas the logical right shift operator is >>>. (Java only has one left shift operator (<<), because arithmetic left shift and logical left shift have the same effect.)
The programming languages C, C++, and Go, however, have only one right shift operator, >>. Most C and C++ implementations, and Go, choose which right shift to perform depending on the type of integer being shifted: signed integers are shifted using the arithmetic shift, and unsigned integers are shifted using the logical shift.
All currently relevant C standards (ISO/IEC 9899:1999 to 2011) leave a definition gap for cases where the number of shifts is equal to or bigger than the number of bits in the operands in a way that the result is simply undefined. This helps allow C compilers emit efficient code for various platforms by allowing direct use of the native shift instructions which have differing behavior. For example, (shift-left-word in PowerPC ) chooses the more-intuitive behavior where shifting by the bit width or above gives zero, whereas (SHL in x86 ) chooses to mask the shift amount to the lower bits "to reduce the maximum execution time of the instructions", and as such a shift by the bit width doesn't change the value.
Some languages, such as the .NET Framework and LLVM, also leave shifting by the bit width and above "unspecified" ((.NET )) or "undefined" ((LLVM )). Others choose to specify the behavior of their most common target platforms, such as C Sharp (programming language) which (specifies the x86 behavior ).
==Example==
If the bit sequence 0001 0111 (decimal 23) were subjected to a logical shift of one bit position...

zh:位操作#逻辑移位

抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)
ウィキペディアで「Logical shift」の詳細全文を読む



スポンサード リンク
翻訳と辞書 : 翻訳のためのインターネットリソース

Copyright(C) kotoba.ne.jp 1997-2016. All Rights Reserved.